perm filename EX3[206,JMC] blob
sn#005340 filedate 1971-08-17 generic text, type T, neo UTF8
00100 (DEFPROP DEPTHFIRST
00200 (LAMBDA (S N)
00300 (COND((ISWIN S) (NCONS S))(T(DEPTHFIRST2(SUCCESSORS S) N)))) EXPR)
00400
00500 (DEFPROP DEPTHFIRST2
00600 (LAMBDA(Z N)
00700 (COND((NULL Z) NIL)
00800 ((ZEROP N)
00900 (COND ((ISWIN (CAR Z)) (NCONS (CAR Z)))
01050 (T (DEPTHFIRST2 (CDR Z) N))))
01075 ((DEPTHFIRST3 Z (SUB1 N)))
01100 (T (DEPTHFIRST2 (CDR Z) N))))
01200 EXPR)
01300
01400 (DEFPROP DEPTHFIRST3
01500 (LAMBDA (Z N)
01600 (PROG (Q)
01700 (SETQ Q (DEPTHFIRST2 (SUCCESSORS (CAR Z))))
01800 (COND ((NULL Q) NIL) (T (RETURN (CONS (CAR Z) Q))))))
01900 EXPR)
02000
02100 (DEFPROP BREADTHFIRST
02200 (LAMBDA(S)
02300 (PROG (A ZNOW ZNEXT)
02400 (COND ((ISWIN S) (RETURN (NCONS S))))
02500 (PUTPROP S NIL (QUOTE DADDY))
02600 (SETQ A S)
02700 (SETQ ZNOW (SETQ ZNEXT NIL))
02800 L (SETQ Z (SUCCESSORS A))
02900 (COND ((BREADTHACROSS Z A) (RETURN T)))
03000 (SETQ ZNEXT (APPEND ZNEXT Z))
03100 (COND ((NULL ZNOW) (SETQ ZNOW ZNEXT) (SETQ ZNEXT NIL)))
03200 (COND ((NULL ZNOW)(RETURN NIL)))
03300 (SETQ A (CAR ZNOW))
03400 (SETQ A (CAR ZNOW))
03500 (SETQ ZNOW (CDR ZNOW))
03600 (GO L)))
03700 EXPR)
03800
03900 (DEFPROP BREADTHACROSS
04000 (LAMBDA(Z DAD)
04100 (COND ((NULL Z) NIL)
04200 ((ISWIN (CAR Z))
04300 (PRINT (REVERSE (CONS (CAR Z) (BACKUP DAD)))))
04400 (T (PUTPROP Z DAD (QUOTE DADDY))
04500 (BREADTHACROSS (CDR Z) DAD))))
04600 EXPR)
04700
04800 (DEFPROP BACKUP
04900 (LAMBDA(Z)
05000 (COND ((NULL (GET Z (QUOTE DADDY))) (NCONS Z))
05100 (T (CONS Z (BACKUP (GET Z (QUOTE DADDY)))))))
05200 EXPR)
05300